package com.qiya.LiaoDa.kb;


import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.TextView;

import com.qiya.LiaoDa.R;

import java.util.List;

public class MyAdapter extends BaseAdapter{

    private List<SP> list;//数据源
    private LayoutInflater inflater;//布局加载器
    DBOperate dbOperate=new DBOperate();

    //有参的构造函数，为数据源，上下文对象复制，同时实例化布局加载器
    public MyAdapter(List<SP> list, Context context) {
        this.list=list;
        inflater=LayoutInflater.from(context);
        dbOperate.test(context);  //初始化一下数据库，不然后面delete用的时候database是空的
    }

    //有多少条数据，需要创建多少个item布局
    @Override
    public int getCount() {
        return list.size();
    }

    //返回position对应位置的数据
    @Override
    public Object getItem(int position) {
        return list.get(position);
    }

    //返回position对应位置item的id
    @Override
    public long getItemId(int position) {
        return position;
    }

    /**
     * 具体定义加载item布局，并将数据显示到item布局上的方法。
     * @param position
     * @param convertView
     * @param parent
     * @return
     */
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        //加载stulist布局 将xml布局加载到内存中，形成一个view
        final View view=inflater.inflate(R.layout.sp,null);
        //实例化stulist布局上的控件
        TextView tv_stuID= (TextView) view.findViewById(R.id.tv_stuID);
        TextView tv_stuName= (TextView) view.findViewById(R.id.tv_stuName);
        TextView tv_stuSex= (TextView) view.findViewById(R.id.tv_stuSex);
        TextView tv_stuAge= (TextView) view.findViewById(R.id.tv_stuAge);
        Button btn_del=(Button) view.findViewById(R.id.btn_del);
        Button btn_alert=(Button) view.findViewById(R.id.btn_alert);
        //往控件上显示数据
        //获取position对应位置的数据
        final SP oneStu= (SP) getItem(position);

        //不转String就会android.content.res.Resources$NotFoundException: String resource ID #0x1
        tv_stuID.setText(String.valueOf(oneStu.getId()));
        tv_stuName.setText(oneStu.getName());
        tv_stuSex.setText(oneStu.getSex());
        tv_stuAge.setText(String.valueOf(oneStu.getAge()));

        //设置按钮的点击事件
        btn_del.setOnClickListener(new View.OnClickListener(){

            @Override
            public void onClick(View v) {
                dbOperate.delete(oneStu.getId());
                list.remove(oneStu);
                MyAdapter.this.notifyDataSetChanged();
            }
        });
        btn_alert.setOnClickListener(new View.OnClickListener(){

            @Override
            public void onClick(View v) {
                Context context=view.getContext();
                Intent intent=new Intent();
                intent.setClass(context, UpdateDialog.class);
                intent.putExtra("altStu",oneStu);
                ((Activity)context).startActivity(intent);
            }
        });
        return view;
    }
}